package com.icloud.article.boot.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.icloud.article.boot.dto.AdminDiscussPageDto;
import com.icloud.article.boot.dto.DiscussDto;
import com.icloud.article.boot.model.Discuss;
import com.icloud.article.boot.query.DiscussQuery;
import com.icloud.article.boot.vo.AdminDiscussVo;
import com.icloud.article.boot.vo.DiscussVo;
import com.icloud.common.web.vo.PageVO;

import java.util.List;
import java.util.Map;


/**
 * 评论service
 */
public interface DiscussService extends IService<Discuss> {


    /**
     * 评论
     * @param dto
     */
    void discuss(DiscussDto dto);

    /**
     * 根据帖子id查询评论数量
     * @param articleIds
     * @return
     */
    Map<Long,Long> queryDiscussCountByArticle(List<Long> articleIds);


    /**
     * 根据帖子id查询评论数量
     * @param articleId 帖子id
     * @return
     */
    Long queryDiscussCountByArticle(Long articleId);


    /**
     * 根据帖子id查询评论列表
     * @param query
     * @return
     */
    List<DiscussVo> list(DiscussQuery query);


    /**
     * 删除评论
     * @param id
     */
    void delete(Long id);

    PageVO<AdminDiscussVo> discussPage(AdminDiscussPageDto dto);
}
